package com.gnerv.battle.boot.module.base.service;

import com.gnerv.battle.boot.module.base.model.bo.RoleBO;
import com.gnerv.battle.boot.module.base.model.dto.RoleDTO;

import java.util.List;
import java.util.Set;

/**
* @author Gnerv LiGen
*/
public interface RoleService {

    boolean create(RoleBO roleBO);

    boolean deleteByUkId(String ukId);

    boolean updateByUkId(RoleBO roleBO);

    RoleDTO selectByUkId(String ukId);

    List<RoleDTO> listByName(String name);

    List<String> listUkIdByAccountUkId(String accountUkId);

    boolean bindAccount(String roleUkId, Set<String> accountUkIdList);

    boolean bindPermission(String roleUkId, Set<String> permissionUkIdList);

    boolean bindView(String roleUkId, Set<String> viewUkIdList);

    boolean unbindAccount(String roleUkId);

    boolean unbindPermission(String roleUkId);

    boolean unbindView(String roleUkId);
}
